module.exports = app => {
  const {
    router,
    controller
  } = app;

  router.get('/', controller.home.index);

  // 自定义API
  router.post('/api/v1/login', controller.users.login); // 定义一个用户登录的post接口
  router.post('/api/v1/login/exe', controller.users.exeLogin); // 定义一个用户登录的post接口
  router.post('/t-api/v1/login/exe', controller.users.exeLoginTest); // 定义一个用户登录的post接口（测试接口）
  router.post('/api/v1/login/pwd', controller.users.pwdLogin); // 定义一个用户登录的post接口

  // 微信验证登录用户
  router.post('/api/v1/wx/login', controller.users.wxLogin); // 定义一个用户登录的post接口, 需要token
  
  
  router.post('/api/v1/upload', controller.files.upload); // 定义文件上传接口
  router.post('/api/v1/upload/url', controller.files.uploadImageByUrl); // 定义url文件上传接口
  // router.post('/api/v1/deleteFile', controller.files.deleteFile); 
  router.post('/api/v1/share/download', controller.files.downloadQRImage); // 获取模板分享图片

  router.post('/api/v1/roles/powers/add', controller.policies.rolePower); // 设置角色的权限


  router.post('/api/v1/public/wx', controller.users.createVisitor); // 创建微信临时用户
  router.post('/api/v1/public/valid', controller.users.validToken); // 验证用户token
  router.get('/api/v1/public/templates', controller.public.getTemplates); // 获取模板列表
  router.get('/api/v1/public/templates/:id', controller.public.getTemplateDetail); // 获取模板详情
  router.get('/api/v1/public/templates/:id/next', controller.public.getNextTemplateDetail); // 获取下一个模板详情
  router.get('/api/v1/public/users', controller.public.getUsers); // 获取临时用户
  router.post('/api/v1/public/ocr', controller.public.getImageText); // 读取文字
  router.get('/api/v1/public/oauth/token', controller.public.getAccessToken); // 获取token
  router.get('/api/v1/public/articles/:id', controller.articles.show); // 预览富文本文章
  router.put('/api/v1/articles/:id/publish', controller.articles.publish); // 发布富文本文章
  router.put('/api/v1/blocks/:id/publish', controller.blocks.publish); // 发布块文章
  router.post('/api/v1/blocks/:id/unlock', controller.blocks.unlock); // 解锁块文章
  router.get('/api/v1/public/blocks/:id/free', controller.blocks.showFreeBlock); // 块预览

  // 以下接口用于更新数据库
  router.post('upgrade', '/api/v1/upgrade/fileDate', controller.upgrade.fileDate); // 将file错误的creatDate更新为createDate

  // RESTful api

  // 按照约定：配置resources指向todos，并且指定api地址，最后指向对应的controller
  // 我们通过这个配置，就可以获得下面的几个接口了
  // GET	/posts	posts	app.controllers.posts.index
  // GET	/posts/new	new_post	app.controllers.posts.new
  // GET	/posts/:id	post	app.controllers.posts.show
  // GET	/posts/:id/edit	edit_post	app.controllers.posts.edit
  // POST	/posts	posts	app.controllers.posts.create
  // PUT	/posts/:id	post	app.controllers.posts.update
  // DELETE	/posts/:id	post	app.controllers.posts.destroy
  // 具体就可以参考controller的方法

  // exports.index = async () => {};

  // exports.new = async () => {};

  // exports.create = async () => {};

  // exports.show = async () => {};

  // exports.edit = async () => {};

  // exports.update = async () => {};

  // exports.destroy = async () => {};

  // 如果我们不需要其中的某几个方法，可以不用在 posts.js 里面实现，这样对应 URL 路径也不会注册到 Router。

  router.resources('users', '/api/v1/users', controller.users); // 用户接口
  router.resources('todos', '/api/v1/todos', controller.todos); // todo接口
  router.resources('templates', '/api/v1/templates', controller.templates); // 模板接口
  router.resources('roles', '/api/v1/roles', controller.roles); // 角色
  router.resources('policies', '/api/v1/policies', controller.policies); // 策略
  router.resources('files', '/api/v1/files', controller.files); // 获取文件列表 || 删除列表
  router.resources('targets', '/api/v1/targets', controller.targets); // 分享目标
  router.resources('shares', '/api/v1/public/shares', controller.shares); // 分享
  router.resources('shares', '/api/v1/shares', controller.shares); // 分享
  router.resources('powers', '/api/v1/powers', controller.powers); // 权限
  router.resources('designs', '/api/v1/designs', controller.designs); // 设计
  router.resources('articles', '/api/v1/articles', controller.articles); // 文章
  router.resources('blocks', '/api/v1/blocks', controller.blocks); // 块
};
